// var b;
// "use strict";
var a = 10;
// 立即调用函数(没有名字的函数叫做匿名函数), 可以防止污染全局作用域
(function () {
	var a = 5;
	console.log("歪哥666");
	console.log(a);
})();
console.log(a);


// js中变量的声明会提升到当前执行环境的最顶端, 但是定义不会提升
// 函数的定义和声明都会提升
console.log(b);
var b = 5;

var r = square(5);
console.log(r);
console.log(square(5));
function square(n) {
	return n * n;
}
// undefined(6, 7);
// console.log(func(5, 6));
// 函数表达式中的函数名可以省略
// 函数表达式并不会提升
var func = function (n1, n2) {
	return n1 + n2;
};
// console.log(func(5, 6));
// func.name可以得到函数名, 如果表达式中没有函数名, 那么该值为变量的名字, 否则为表达式中函数的名字
// console.log(func.name);

// var func2 = func;
// console.log(func2.name);


function sub(n1, n2) {
	return n1 - n2;
}
var func3 = sub;
console.log(sub(5, 2));
console.log(func3(6, 3));










